package me.zhengjie.modules.app.service;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Service;

import java.io.IOException;

@Service
public class WebCrawlerService {

    public void fetchPageData() {
        try {
            // 第一步：获取主页面内容
            String baseUrl = "https://www.jcgov.gov.cn";
            String mainUrl = baseUrl + "/zfsj/jcjg/lyfsp/sqscpfjg/";
            Document mainDocument = Jsoup.connect(mainUrl).get();

            // 获取包含 <li> 标签的列表
            Elements listItems = mainDocument.select(".speech_box_content ul li a"); // 假设每个 <li> 中有 <a> 标签

            for (Element item : listItems) {
                String hrefValue = item.attr("href");
                if (hrefValue.length() > 2) {
                    hrefValue = hrefValue.substring(2);
                }
                // 第二步：提取 href 属性并拼接完整 URL

                String fullUrl = hrefValue.startsWith("http") ? hrefValue : mainUrl + hrefValue;
                System.out.println("正在访问: " + fullUrl);

                // 第三步：访问拼接后的 URL 并爬取数据
                try {
                    Document detailDocument = Jsoup.connect(fullUrl).get();
                    crawlTableData(fullUrl);
//                    Element contentElement = detailDocument.selectFirst(".ue_table table"); // 根据页面实际内容调整选择器
//
//                    if (contentElement != null) {
//                        System.out.println("数据: " + contentElement.text());
//                    } else {
//                        System.out.println("未找到内容");
//                    }
                } catch (IOException e) {
                    System.out.println("访问 " + fullUrl + " 时出错: " + e.getMessage());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    public void crawlTableData(String urlName) {
        try {
            // 获取目标页面
            String url = urlName; // 替换成实际的 URL
            Document document = Jsoup.connect(url).get();

            // 查找所有的表格行
            Elements rows = document.select("table tr"); // 选择所有的 <tr> 标签

            // 遍历每一行，提取表格中的数据
            for (Element row : rows) {
                // 提取每一行中的所有 <td> 标签（即单元格内容）
                Elements cells = row.select("td");

                if (cells.size() == 4) { // 假设每一行有4个单元格（商品名称、品种、单位、价格）
                    String productName = cells.get(0).text(); // 商品名称
                    String productVariety = cells.get(1).text(); // 品种
                    String unit = cells.get(2).text(); // 单位
                    String price = cells.get(3).text(); // 价格

                    // 输出抓取到的内容
                    System.out.println("商品名称: " + productName);
                    System.out.println("品种: " + productVariety);
                    System.out.println("单位: " + unit);
                    System.out.println("价格: " + price);
                    System.out.println("------");
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}